package org.s170.servlet.WebServlet;


import com.google.gson.Gson;
import org.s170.utils.FileUploadUtil;
import org.s170.vo.ResultVO;

import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/api/LayuiImg.do")
@MultipartConfig
public class LayuiImgServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // uploadfile为field参数设置的值
        Part part = req.getPart("uploadfile");

        // JSON格式的字符串，需要打印输出流对象输出响应到页面
        PrintWriter out = resp.getWriter();

        // 获取上传目录的真实路径
        String path = req.getServletContext().getRealPath("/file");

        // 实例化上传工具对象，并初始化信息
        FileUploadUtil util = new FileUploadUtil();

        util.setAlowFileExt("jpg,png,jpeg,gif,rar");
        util.setMaxSize(2 * 1024 * 1024); // 单位：byte,这里是2MB

        // 上传，返回上传后的文件名
        String filename = util.upload(part, path);

        System.out.println("文件名称："+filename);
        // service、dao...

        // 把服务器的数据，封装到ResponseData对象
        ResultVO rd = new ResultVO(filename);

        // 使用Gson()对象，把对象转换为JSON字符串
        String json = new Gson().toJson(rd);

        // 把JSON字符串，响应回页面
        out.print(json);

        // 关闭
        out.flush();
        out.close();
    }
}
